Skip to main content

Bookease

Overview #

BookEase is a lightweight bookkeeping app powered by the PERN stack (PostgreSQL, Express.js, React, Node.js).

Click to view this project

Project Highlights #

Frontend #

  • Language: Written in TypeScript and TSX, ensuring type safety and better developer experience.
  • State Management: Utilizes Zustand for global state management.
  • Data Fetching: Implements infinite loading using SWR(stale-while-revalidate) Library.
  • HTTP Client: Custom Axios instance for seamless backend interaction.
  • Data Visualization: Echarts is utilized for creating interactive and visually appealing statistics visualizations.
  • Performance Optimization: Implemented lazy loading and code splitting to enhance performance and reduce initial load times.

Backend #

  • Framework: Built with Express.js, providing a robust and flexible HTTP server framework.
  • Language: Developed using TypeScript to create RESTful APIs.
  • Authentication: Uses JWT for user authentication, with a custom validation middleware.
  • Email Communication: Integrates Nodemailer to send emails during user signup and login, enhancing user communication and security.

Data Management #

  • Database: Data is stored in a PostgreSQL database, managed through the Prisma ORM, which simplifies database interactions and migrations.

Deployment #

  • CI/CD: Set up Github Action to automatically containerize and deploy the project using Docker.
  • Web Server: The project is served by Nginx, which handles static file serving and reverse proxying for the backend API.

View the source code at: #

Frontend: React-Bookkeeper
Backend: React-Bookkeeper-Backend